namespace OOP.OpenClose
{
    /// <summary>
    /// 测点数据
    /// </summary>
    
    class StationData
    {
        public double Md {get; set;}
        public double Inc {get; set;}
        public double Azi {get; set;}

        public double Tvd {get; set;}
        public double Ns {get; set;}
        public double Ew {get; set;}
    }

   /// <summary>
    /// 测斜数据
    /// </summary>
    class SurveyData
    {
        public List<StationData> Stations {get; private set;} = new List<StationData>();
    }

    /// <summary>
    /// 测斜数据计算类
    /// 
    /// </summary>
    class SurveyCalculator 
    {
        /// <summary>
        /// Normal Mode
        /// 根据Md，Inc， Azi => Tvd, Ns, Ew
        /// </summary>
        public void Calculate() 
        {

        }
        
        //
        /// <summary>
        /// 如果是惯性设备. (Tvd, Ns, Ew) => (Md, Inc, Azi)
        /// 增加一个新的方法吗？
        /// </summary>
        public void CalcInertial()
        {

        }

    }

    /// <summary>
    /// 重构以后的
    /// 符合原则的
    /// </summary>
    namespace Refactored
    {
        public interface ICaculator
        {
             public void Calculate();
        }

        class NormalCaculator: ICaculator
        {
            public void Calculate()
            {
//已经实现的
            }
        }

        class InertialCaculator: ICaculator
        {
            public void Calculate()
            {
//新实现
            }
        }
    }
}